<div>
    <div class="accordion">
        <div class="accordion-group" ng-show="!support_raw_api">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    HTTP RAW API
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <div class="alert alert-block alert-danger" ng-show="warn_raw_api">
                        该服务器不支持HTTP RAW API，或者配置中禁用了该功能。参考<a href='https://github.com/ossrs/srs/wiki/v3_CN_HTTPApi#http-raw-api'>WIKI</a>。
                    </div>
                    <table class="table table-striped table-hover table-bordered" ng-show="http_api">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                            <th>Opt</th>
                        </tr>
                        <tr sc-pretty scp-key="http_api.enabled" scp-value="http_api.enabled" scp-bool="true"
                            scp-desc="是否开启HTTP API，开启后就可以访问SRS提供的API管理服务器。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty scp-key="http_api.listen" scp-value="http_api.listen"
                            scp-desc="HTTP API的侦听地址，格式是&lt;[address:]port&gt;。默认: 1985">
                        </tr>
                        <tr sc-pretty scp-key="http_api.crossdomain" scp-value="http_api.crossdomain" scp-bool="true"
                            scp-desc="是否允许JS跨域，开启后JS可以直接跨域(还可以通过JSONP访问)。默认: {{true| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty scp-key="http_api.raw_api.enabled" scp-value="http_api.raw_api.enabled" scp-bool="true"
                            scp-desc="是否开启HTTP RAW API，允许API修改服务器配置。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty scp-key="http_api.raw_api.allow_reload" scp-value="http_api.raw_api.allow_reload" scp-bool="true"
                            scp-desc="是否允许API进行Reload操作。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty scp-key="http_api.raw_api.allow_query" scp-value="http_api.raw_api.allow_query" scp-bool="true"
                            scp-desc="是否允许API进行Query查询操作。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty scp-key="http_api.raw_api.allow_update" scp-value="http_api.raw_api.allow_update" scp-bool="true"
                            scp-desc="是否允许API进行Update更新操作。默认: {{false| sc_filter_enabled}}">
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="in">
                <a class="accordion-toggle" href="javascript:void(0)">
                    服务器API配置(http_api)
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                            <th>Opt</th>
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_api.enabled" scp-bool="true"
                            scp-desc="是否开启HTTP API，开启后就可以访问SRS提供的API管理服务器。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_api.listen.value"
                            scp-desc="HTTP API的侦听地址，格式是&lt;[address:]port&gt;。默认: 1985">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_api.crossdomain" scp-bool="true"
                            scp-desc="是否允许JS跨域，开启后JS可以直接跨域(还可以通过JSONP访问)。默认: {{true| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_api.raw_api.enabled" scp-bool="true"
                            scp-desc="是否开启HTTP RAW API，允许API修改服务器配置。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_api.raw_api.allow_reload" scp-bool="true"
                            scp-desc="是否允许API进行Reload操作。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_api.raw_api.allow_query" scp-bool="true"
                            scp-desc="是否允许API进行Query查询操作。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_api.raw_api.allow_update" scp-bool="true"
                            scp-desc="是否允许API进行Update更新操作。默认: {{false| sc_filter_enabled}}">
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="out">
                <a class="accordion-toggle" href="javascript:void(0)">
                    服务器全局配置
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <div class="accordion-inner">
                        <table class="table table-striped table-hover table-bordered">
                            <tr>
                                <th>Key</th>
                                <th>Value</th>
                                <th>Description</th>
                                <th>Opt</th>
                            </tr>
                            <tr sc-directive scd-data="global.listen" scd-span="span3"
                                scd-desc="RTMP服务器侦听的端口，提供RTMP服务，格式是&lt;[address:]port&gt;[,&lt;addressN&gt;portN]"
                                scd-array="true" scd-default="1935"
                                scd-submit="submit(global.listen)">
                            </tr>
                            <tr sc-directive scd-data="global.pid" scd-span="span3"
                                scd-desc="服务器使用的PID文件，每个进程必须用一个，否则无法启动。默认: ./objs/srs.pid"
                                scd-default="./objs/srs.pid"
                                scd-submit="submit(global.pid)">
                            </tr>
                            <tr sc-directive scd-data="global.chunk_size" scd-span="span3"
                                scd-desc="默认的ChunkSize，即RTMP分包的大小。默认: 60000"
                                scd-default="60000"
                                scd-submit="submit(global.chunk_size)">
                            </tr>
                            <tr sc-directive scd-data="global.ff_log_dir" scd-span="span4"
                                scd-desc="默认的FFMPEG日志目录，/dev/null禁用日志。默认: ./objs"
                                scd-default="./objs"
                                scd-submit="submit(global.ff_log_dir)">
                            </tr>
                            <tr sc-directive scd-data="global.srs_log_tank" scd-span="span3"
                                scd-desc="系统的日志容器，即存储方式。默认: file"
                                scd-default="file", scd-select="file,console"
                                scd-submit="submit(global.srs_log_tank)">
                            </tr>
                            <tr sc-directive scd-data="global.srs_log_level" scd-span="span3"
                                scd-desc="系统的日志级别，低于该级别的日志不会打印。默认: trace"
                                scd-default="trace" scd-select="verbose,info,trace,warn,error"
                                scd-submit="submit(global.srs_log_level)">
                            </tr>
                            <tr sc-directive scd-data="global.srs_log_file" scd-span="span4"
                                scd-desc="当日志容器为file，即日志写入文件时，日志文件的路径。默认: ./objs/srs.log"
                                scd-default="./objs/srs.log"
                                scd-submit="submit(global.srs_log_file)"
                                ng-if="global.srs_log_tank.value == 'file'">
                            </tr>
                            <tr sc-directive scd-data="global.max_connections" scd-span="span3"
                                scd-desc="系统的最大连接数，超过后将拒绝新连接。默认: 1000"
                                scd-default="1000"
                                scd-submit="submit(global.max_connections)">
                            </tr>
                            <tr sc-pretty2 scp-data="global.daemon" scp-bool="true"
                                scp-desc="是否以后台启动SRS。默认: {{true| sc_filter_yesno}}">
                            </tr>
                            <tr sc-directive scd-data="global.utc_time" scd-span="span4"
                                scd-desc="是否启用UTC时间格式，影响日志的时间和路径中包含时间变量的配置。默认: {{false| sc_filter_yesno}}"
                                scd-default="false" scd-bool="true"
                                scd-submit="submit(global.utc_time)">
                            </tr>
                            <tr sc-directive scd-data="global.pithy_print_ms" scd-span="span3"
                                scd-desc="简化形式的日志打印间隔，单位: 毫秒。默认: 10000"
                                scd-default="10000" scd-select="1000,3000,5000,10000,30000"
                                scd-submit="submit(global.pithy_print_ms)">
                            </tr>
                        </table>
                    </div>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="out">
                <a class="accordion-toggle" href="javascript:void(0)">
                    虚拟主机(Vhosts)列表, 共配置有{{global.nb_vhosts.value}}个Vhost
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>
                                <a href="javscript:void(0)" ng-click="new_vhost()" class="icon-plus"></a>
                            </th>
                            <th>主机名称</th>
                            <th>开启</th>
                            <th>源</th>
                            <th>DVR</th>
                            <th>HTTP</th>
                            <th>FLV</th>
                            <th>HLS</th>
                            <th>HDS</th>
                            <th>回调</th>
                            <th ng-show="false">Exec</th>
                            <th ng-show="false">BWT</th>
                            <th>转发</th>
                            <th>安全</th>
                            <th ng-show="false">盗链</th>
                            <th ng-show="false">MR</th>
                            <th ng-show="false">RTC</th>
                            <th ng-show="false">GOP</th>
                            <th ng-show="false">TcpNoDelay</th>
                            <th ng-show="false">MixCorrect</th>
                            <th ng-show="false">TimeJitter</th>
                            <th ng-show="false">ATC</th>
                            <th>转码</th>
                            <th>采集</th>
                            <th>
                                <a href="javascript:void(0)" ng-click="new_vhost()">添加</a>
                            </th>
                        </tr>
                        <tr ng-repeat="vhost in global.vhosts">
                            <td><a href="#/vhosts/{{vhost.id}}" ng-show="vhost.id">{{vhost.id}}</a><span ng-show="!vhost.id">无流</span> </td>
                            <td colspan="{{vhost.editable?13:1}}">
                                <span ng-show="!vhost.editable">{{vhost.name}}</span>
                                <span ng-show="vhost.editable">
                                    <input class="text span5" ng-model="vhost.name"><br/>
                                    请输入vhost的名称。
                                </span>
                            </td>
                            <td ng-show="!vhost.editable">{{vhost.enabled| sc_filter_yesno}}</td>
                            <td ng-show="!vhost.editable">{{vhost.origin| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.dvr| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.http_static| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.http_remux| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.hls| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.hds| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.http_hooks| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.exec| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.bandcheck| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.forward| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.security| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.refer| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.mr| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.min_latency| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.gop_cache| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.tcp_nodelay| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.mix_correct| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.time_jitter| sc_filter_yn}}</td>
                            <td ng-show="false && !vhost.editable">{{vhost.atc| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.transcode| sc_filter_yn}}</td>
                            <td ng-show="!vhost.editable">{{vhost.ingest| sc_filter_yn}}</td>
                            <td>
                                <span ng-show="vhost.editable">
                                    <!-- vhost exists in server -->
                                    <span ng-show="vhost.enabled != undefined">
                                        <a bravo-popover href="javascript:void(0)"
                                           data-content="请确认是否提交{{vhost.name}}?" data-title="请确认" data-placement="left"
                                           bravo-popover-confirm="update_vhost(vhost)">
                                            提交
                                        </a>
                                        <a href="javascript:void(0)" ng-click="cancel_vhost(vhost)">放弃</a>
                                    </span>
                                    <!-- vhost in adding. -->
                                    <span ng-show="vhost.enabled == undefined">
                                        <a bravo-popover href="javascript:void(0)"
                                           data-content="请确认是否提交{{vhost.name}}?" data-title="请确认" data-placement="left"
                                           bravo-popover-confirm="add_vhost(vhost)">
                                            提交
                                        </a>
                                        <a href="javascript:void(0)" ng-click="abort_vhost(vhost)">放弃</a>
                                    </span>
                                </span>
                                <span ng-show="!vhost.editable">
                                    <span ng-show="vhost.enabled">
                                        <span>编辑</span>
                                        <a bravo-popover href="javascript:void(0)"
                                           data-content="请确认是否禁用{{vhost.name}}?" data-title="请确认" data-placement="left"
                                           bravo-popover-confirm="disable_vhost(vhost)">
                                            禁用
                                        </a>
                                        <span>删除</span>
                                    </span>
                                    <span ng-show="!vhost.enabled">
                                        <a href="javascript:void(0)" ng-click="edit_vhost(vhost)">编辑</a>
                                        <a bravo-popover href="javascript:void(0)"
                                           data-content="请确认是否启用{{vhost.name}}?" data-title="请确认" data-placement="left"
                                           bravo-popover-confirm="enable_vhost(vhost)">
                                            启用
                                        </a>
                                        <a bravo-popover href="javascript:void(0)"
                                           data-content="请确认是否删除{{vhost.name}}?" data-title="请确认" data-placement="left"
                                           bravo-popover-confirm="delete_vhost(vhost)">
                                            删除
                                        </a>
                                    </span>
                                    <a href="#/configs/{{vhost.name}}" ng-show="!vhost.editable">详细</a>
                                </span>
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="hide">
                <a class="accordion-toggle" href="javascript:void(0)">
                    Kafka集群配置(kafka)
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                            <th>Opt</th>
                        </tr>
                        <tr sc-pretty2 scp-data="global.kafka.enabled" scp-bool="true"
                            scp-desc="是否开启Kafka，开启后SRS将数据汇报给Kafka集群。默认: {{false| sc_filter_enabled}}">
                        </tr>
                        <tr sc-pretty2 scp-data="global.kafka.brokers"
                            scp-desc="Broker列表，首次连接到Broker获取集群信息，格式是&lt;ip:port&gt;。">
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="hide">
                <a class="accordion-toggle" href="javascript:void(0)">
                    服务器心跳汇报(heartbeat)
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                            <th>Opt</th>
                        </tr>
                        <tr sc-pretty2 scp-data="global.heartbeat.enabled"
                            scp-desc="是否开启服务器心跳，向外部系统汇报。默认: {{false| sc_filter_enabled}}"
                            scd-bool="true">
                        </tr>
                        <tr sc-pretty2 scp-data="global.heartbeat.interval"
                            scp-desc="心跳间隔的时间，单位: 秒。默认: 9.9"
                            ng-show="global.heartbeat.enabled.value">
                        </tr>
                        <tr sc-pretty2 scp-data="global.heartbeat.url"
                            scp-desc="汇报的HTTP服务器地址，汇报信息格式是JSON。默认: http://127.0.0.1:8085/api/v1/servers"
                            ng-show="global.heartbeat.enabled.value">
                        </tr>
                        <tr sc-pretty2 scp-data="global.heartbeat.device_id"
                            scp-desc="设备ID，SRS会写入汇报信息中。"
                            ng-show="global.heartbeat.enabled.value">
                        </tr>
                        <tr sc-pretty2 scp-data="global.heartbeat.smmaries"
                            scp-desc="是否汇报摘要，即服务器的summaries信息。默认: {{false| sc_filter_yesno}}"
                            scd-bool="true"
                        scd-submit="submit(global.heartbeat.summaries)"
                            ng-show="global.heartbeat.enabled.value">
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="hide">
                <a class="accordion-toggle" href="javascript:void(0)">
                    服务器统计信息配置(stats)
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                            <th>Opt</th>
                        </tr>
                        <tr sc-pretty2 scp-data="global.stats.network"
                            scp-desc="统计的网卡索引，从0开始算第一块网卡。默认: 0">
                        </tr>
                        <tr sc-pretty2 scp-data="global.stats.disk"
                            scp-desc="统计的磁盘名称，可以在/proc/diskstats中查看。"
                            scd-array="true">
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="hide">
                <a class="accordion-toggle" href="javascript:void(0)">
                    HTTP服务器配置(http_server)
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                            <th>Opt</th>
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_server.enabled"
                            scp-desc="是否开启HTTP文件服务器和HTTP流服务器。默认: {{false| sc_filter_enabled}}"
                            scd-bool="true">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_server.listen"
                            scp-desc="HTTP服务器侦听的地址，格式是&lt;[address:]port&gt;。默认: 8080"
                            ng-show="global.http_server.enabled.value">
                        </tr>
                        <tr sc-pretty2 scp-data="global.http_server.dir"
                            scp-desc="HTTP服务器的主目录。默认: ./objs/nginx/html"
                            ng-show="global.http_server.enabled.value">
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="accordion-group" ng-show="support_raw_api">
            <div class="accordion-heading" sc-collapse="hide">
                <a class="accordion-toggle" href="javascript:void(0)">
                    StreamCaster流转换器(stream_caster)
                </a>
            </div>
            <div class="accordion-body collapse">
                <div class="accordion-inner">
                    <table class="table table-striped table-hover table-bordered">
                        <tr>
                            <th>Key</th>
                            <th>Value</th>
                            <th>Description</th>
                            <td>Opt</td>
                        </tr>
                        <tr sc-pretty2 scp-data="global.stream_caster.enabled"
                            scp-desc="是否开启StreamCaster，即接收特殊的流后转换成RTMP送到SRS。默认: {{false| sc_filter_enabled}}"
                            scd-bool="true">
                        </tr>
                        <tr sc-pretty2 scp-data="global.stream_caster.caster"
                            scp-desc="转换器的类型，不同的类型需要不同的配置，mpegts_over_udp,rtsp,flv"
                            scd-select="mpegts_over_udp,rtsp,flv"
                            ng-show="global.stream_caster.enabled.value">
                        </tr>
                        <tr sc-pretty2 scp-data="global.stream_caster.output"
                            scp-desc="输出的RTMP地址，转换器侦听端口，接收特定的流，转换成RTMP后送到SRS。"
                            ng-show="global.stream_caster.enabled.value">
                        </tr>
                        <tr sc-pretty2 scp-data="global.stream_caster.listen"
                            scp-desc="转换器侦听的地址，格式是&lt;port&gt;"
                            ng-show="global.stream_caster.enabled.value">
                        </tr>
                        <tr sc-pretty2 scp-data="global.stream_caster.rtp_port_min"
                            scp-desc="转换器会在[rtp_port_min, rtp_port_max]中间选择一个新端口并侦听，参考RTP协议。"
                            ng-show="global.stream_caster.enabled.value && global.stream_caster.caster.value == 'rtsp'">
                        </tr>
                        <tr sc-pretty2 scp-data="global.stream_caster.rtp_port_max"
                            scp-desc="转换器会在[rtp_port_min, rtp_port_max]中间选择一个新端口并侦听，参考RTP协议。"
                            ng-show="global.stream_caster.enabled.value && global.stream_caster.caster.value == 'rtsp'">
                        </tr>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>